These days, a technique known as OpenFlow has been proposed (see Non-Patent Literatures 1 and 2). In the OpenFlow, the packet forwarding function and the path control function are separated from each other, such that a network apparatus takes charge of the packet forwarding function, while a controller provided outside the network apparatus takes charge of the control function. In this manner, control from outside becomes easier, thus enabling construction of a network which is high in flexibility.
FIG. 14 shows a basic example configuration of the OpenFlow 1.0.0. Specifically, FIG. 14 shows a switch as an example network apparatus. The OpenFlow is made up of a network apparatus(es) that supports an OpenFlow protocol and a controller placed outside. The network apparatus(es) is connected with the controller via a secure channel and communicates with the controller in accordance with the OpenFlow protocol. In the OpenFlow, packet forwarding by the network apparatus(es) and path control are separated from each other, such that the network apparatus performs packet forwarding, while the controller manages path control for the network apparatus(es). More specifically, the controller sets flow entries, in which match conditions (Header Field of FIG. 14), statistics information (Counter of FIG. 14) and the processing contents (Actions of FIG. 14) are correlated one with another, in the switch (network apparatus). The switch searches the flow entries so set therein for such flow entry having the match conditions matching a received packet. If the matching entry is found, the switch applies the entry's processing contents (Actions of FIG. 14) to the received packet.
On the other hand, a technique termed ‘TRILL’ has been proposed as a method for constructing a network that is high in flexibility (Non-Patent Literature 3). In TRILL, the network apparatus has both the function of packet forwarding and the function of path control. TRILL encapsulates an Ethernet (registered trademark) frame received by another Ethernet frame and adds a new destination MAC address (Media Access Control Address), a source MAC address and a VLAN tag. Moreover, TRILL adds a unique TRILL header storing the information concerning an ingress switch as well as an egress switch.
Referring to FIG. 15, processing flow by TRILL will be shown.
(1) A TRILL switch A receives a packet from a node A. The TRILL switch A searches a forwarding table to check for nicknames of an ingress RBridge (Routing Bridge) and an egress RBridge, based on the original Ethernet header information. The TRILL switch A adds a TRILL header in which the nicknames of the above mentioned RBridges are set, and encapsulates the packet with a new Ethernet header to transmit the packet encapsulated to a TRILL switch B which is the next hop.(2) The TRILL switch B searches its forwarding table and modifies the destination MAC address as well as the source MAC address of the Ethernet header to transmit the packet to a TRILL switch D which is the next hop.(3) The TRILL switch D searches its forwarding table. If the switch D finds that the node B as the destination is connected under its control, the switch strips off the TRILL header and the Ethernet header disposed on an outer side to transmit the resulting packet to the node B.
TRILL uses the IS-IS (Intermediate System to Intermediate System) to generate the forwarding table. The TRILL switches exchange IS-IS packets with one another to generate a forwarding table.    Non-Patent Literature 1: Nick McKeown and seven others, “OpenFlow: Enabling Innovation in Campus Networks”, [online], retrieved on February 23, Heisei25 (2013), Internet <URL:http://www.openflow-org/documents/openflow-wp-latest.pdf>    Non-Patent Literature 2: “OpenFlow Switch Specification” Version 1.0.0 (Wire Protocol 0x01), [online], Retrieved on February 23, Heisei25 (2013), Internet <URL:http://www.openflow.org/documents/openflow-spec-v1.0.0.pdf>    Non-Patent Literature 3: “Transparent Interconnection of Lots of Links (TRILL)”, [online], [Retrieved on February 23, Heisei25 (2013)], Internet URL:http://datatracker.ietf.org/wg/TRILL/SUMMARY
The following analysis is given by the present invention. The OpenFlow controller of Non-Patent Literatures 1, 2 calculates forwarding paths, based on link costs of OpenFlow switches, and set flow entries (control information) on the OpenFlow switches disposed on a path of the least cost. These flow entries (control information) carry out the forwarding along the so calculated path. At this time, the OpenFlow controller is unable to collect the information on the topology or link costs of the switch or switches that are not under its control and that are OpenFlow incompatible. Hence, such switch or switches may, of course, not be used for path calculations.
On the other hand, the TRILL (Transparent Interconnect of Lots of Links) switches exchange the link cost information between each other. Each TRILL switch autonomously calculates a path(s) and uses the path of the least cost down to the packet's destination.
Such a configuration including an OpenFlow network and a TRILL network lying adjacent to each other, in which each of the OpenFlow and TRILL networks includes a plurality of neighboring points, there being a plurality of paths down to the packet's destination, as shown in FIG. 2, will now be considered. The OpenFlow controller is unable to get the information on the topology or the link costs in the TRILL network and hence is unable to use the TRILL network information for path control. On the other hand, the TRILL switch is unable to get the information on the topology or the link costs in the OpenFlow network and hence is unable to use the OpenFlow network information for path control.
Such a method may be thought of in which a TRILL switch(es) is created using a software technique within the OpenFlow controller so as to cause the OpenFlow network in its entirety to operate as a single TRILL switch. However, with the method of causing the OpenFlow network to operate in its entirety as a single TRILL switch, there are cases where the least cost path cannot be selected.
A specific example will now be illustrated by referring to FIG. 4 to FIG. 7. FIG. 4 shows a physical topology and FIG. 5, while FIG. 6 show link costs between two of the switches of FIG. 4. Referring to FIG. 4, the least cost path from the node C up to the node A is [node C→TRILL switch 50-4→TRILL switch 50-1→OpenFlow switch 40-5→OpenFlow switch 40-3→OpenFlow switch 40-1→node A]. The least cost path from the node C up to the node B is [node C→TRILL switch 50-4→TRILL switch 50-2→OpenFlow switch 40-6→OpenFlow switch 40-4→OpenFlow switch 40-2→node B]. These least cost paths are shown in FIG. 7.
If, in FIG. 4, the OpenFlow network is deemed to be a single TRILL switch, the least cost path from the node C up to the node B is [node C→TRILL switch 50-4→TRILL switch 50-1→OpenFlow switch 40-5], which path differs from the inherent least cost path.
It is an object of the present invention to provide a communication system, an integrated controller, a method for forwarding a packet and a program, contributing to providing a path controlling means in an environment of interconnection of a network forwarding a packet along a route specified from an upper order apparatus and a network managing autonomous path control.
In a first aspect, the present invention provides a communication system comprising a first switch(es) that exchanges information with a neighboring switch(es) by a preset routing protocol to form a forwarding table and that references the so formed forwarding table to forward a packet. The communication system also comprises a second switch(es) that forwards the packet in accordance with an instruction from a preset controller, the controller that gives the instruction to the second switch(es), and a integrated controller. The integrated controller instructs the controller to forward the packet along a path specified for the second switch(es) and to generate a virtual network constituted by a virtualized switch(es) as the first switch(es). The integrated controller causes information exchange to be performed between the second switch(es) mapped to the virtual network and the first switch(es) by the preset routing protocol to cause the packet to be forwarded along a pre-calculated path.
In a second aspect, there is provided a integrated controller connected to a first switch(es) that exchanges information with a neighboring switch(es) by a preset routing protocol to form a forwarding table and that references the so formed forwarding table to forward a packet, a second switch(es) forwarding the packet under an instruction from a preset controller and to the preset controller instructing the second switch(es). Based on the information collected from the first and second switches, the integrated controller instructs the controller to forward a packet on a path specified for the second switch(es) and to generate a virtual network constituted by a virtualized switch(es) as the first switch(es). The integrated controller causes information exchange to be performed by the preset routing protocol between the first switches and the second switches mapped to the virtual network so as to cause the packet to be forwarded along a pre-calculated path.
In a third aspect, there is provided a method for forwarding a packet comprising instructing a controller, which instructs a second switch(es), to forward a packet on a path specified for the second switch(es) and to generate a virtual network. A first switch(es) that exchanges information with a neighboring switch(es) by a preset routing protocol to form a forwarding table and that references the forwarding table to forward a packet, forms a network, and the second switch(es), forwarding the packet under an instruction from the controller, forms the network. The virtual network is constituted by a virtualized switch(es) as the first switch(es). The method also comprises causing information exchange to be performed by the preset routing protocol between the first switch(es) and the second switch(es) mapped to the virtual network so as to cause the packet to be forwarded along a pre-calculated path. The present method is bound up with a particular machine which is a integrated controller that controls the above mentioned network management apparatus and the above mentioned controller.
In a fourth aspect, there is provided a program that causes a computer, which instructs a controller, controlling a second switch(es), to perform a processing of instructing the second switch(es) to forward a packet along a specified path and to generate a virtual network. A first switch(es) exchanging information with a neighboring switch(es) by a preset routing protocol to form a forwarding table and referencing the forwarding table to forward a packet, forms a network, and the second switch(es), forwarding the packet under an instruction from the controller, forms the network. The virtual network is constituted by a virtualized switch(es) as the first switch(es). The program also causes the computer to perform a processing of causing the information to be exchanged between the first switch(es) and the second switch(es) mapped to the virtual network by the preset protocol so as to cause the first and second switches to forward the packet along a pre-calculated path. By the way, the program can be recorded on a computer-readable (non-transient) recording medium. Viz., the present invention can be implemented as a computer program product.
According to the present invention, it is possible to contribute to providing a path control means in an environment of interconnection of a network forwarding a packet along a route specified from an upper order apparatus and a network exercising autonomous path control (enriching or plenitude enhancement).